package com.free.bsf.file;

import com.free.bsf.file.base.UploadToken;
import com.free.bsf.file.base.StsToken;

import java.io.InputStream;
import java.util.Map;

/**
 * @author Huang Zhaoping
 * @edit chejiangyi
 */
public interface FileProvider {

    /**
     * 上传文件
     *
     * @param input 文件流
     * @param name  文件名
     * @return
     */
    String upload(InputStream input, String name);

    /**
     * 	上传文件
     *
     * @param filePath 上传的本地文件名
     */
    String upload(String filePath);
    /**
     * 上传临时文件
     *
     * @param input 文件流
     * @param name  文件名
     * @return
     */
    String uploadTemp(InputStream input, String name);
    /**
     * 	上传文件
     *
     * @param filePath 上传的本地文件名
     */
    String uploadTemp(String filePath);

    /**
     * 上传token
     * @return
     */
    Map<String,String> uploadToken(String name);

    /**
     * 删除文件
     *
     * @param url
     * @return
     */
    boolean delete(String url);

    /**
     * 通过stsToken来上传文件
     * @param input 文件流
     * @param name 文件名称
     * @param jsonStsToken STS Token数据
     * @return
     */
    String uploadSTS(InputStream input, String name, String jsonStsToken);

    /**
     * 通过stsToken来上传文件
     * @param filePath
     * @param jsonStsToken
     * @return
     */
    String uploadSTS(String filePath, String jsonStsToken);
}
